home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 2
/
Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso
/
Aminet
/
dev
/
e
/
amigae21b.lha
/
Amiga_E_v2.1b
/
Sources
/
Examples
/
24bitColourDemo.e
next >
Wrap
Text File
|
1992-09-02
|
2KB
|
58 lines
/* 24bit color demo. works only on AGA machines with kick3 */
OPT OSVERSION=39
CONST X=319, Y=255
DEF rast,s,win,x,y,z
PROC main()
IF s:=OpenS(X+1,Y+1,8,0,'bla')
rast:=stdrast /* needed for fullcolour() */
IF win:=OpenW(0,0,X+1,Y+1,0,0,'bla',s,15,0)
FOR x:=0 TO 255 DO fullcolour(x,x,x,x)
FOR y:=0 TO Y DO Line(0,y,63,y,y AND $FF)
FOR y:=0 TO Y DO Line(64,y,127,y,y AND $FE)
FOR y:=0 TO Y DO Line(128,y,191,y,y AND $FC)
FOR y:=0 TO Y DO Line(192,y,255,y,y AND $F8)
FOR y:=0 TO Y DO Line(256,y,319,y,y AND $F0)
SetDrMd(stdrast,0)
TextF(0,20,' Press leftMB on some (x,y) spot')
TextF(0,30,' rightMB to leave.')
TextF(0,50,' #of colours:')
TextF(0,60,' 256 128 64 32 16 ')
TextF(0,80,' #bits colour:')
TextF(0,90,' 24 21 18 15 12 ')
TextF(0,100,' AGA AGA AGA AGA ECS ')
WHILE Mouse()<>2
IF Mouse()=1
y:=MouseX(win)*4/5
z:=MouseY(win)
FOR x:=0 TO 255
fullcolour(x,y,x,z)
ENDFOR
ENDIF
ENDWHILE
CloseW(win)
ENDIF
CloseS(s)
ENDIF
ENDPROC
PROC fullcolour(nr,r,g,b) /* a replacement for SetRGB32() */
MOVE.L rast,A0 /* as the modules for 3.0 weren't */
SUB.L #40,A0 /* available yet. */
MOVE.L nr,D0
MOVE.L r,D1
SWAP D1
LSL.L #8,D1 /* shift RGB to 32bit */
MOVE.L g,D2
SWAP D2
LSL.L #8,D2
MOVE.L b,D3
SWAP D3
LSL.L #8,D3
MOVE.L gfxbase,A6
JSR -$354(A6) /* SetRGB32(rast,nr,r32,g32,b32) */
ENDPROC